package com.springboot.mybatis.service;

import com.springboot.mybatis.entity.User;

import java.util.List;

/**
 * @version V1.0
 * @program: mybatis
 * @description
 * @author: 张要廷<zhang_yt @ suixingpay.com>
 * @create: 2019/10/21 19:00
 **/
public interface UserService {

    /**
     * 新增用户
     * @param user
     * @return
     */
    int saveUserAllParam(User user);

    /**
     * 新增有值的属性
     * @param user
     * @return
     */
    int saveUserSelective(User user);

    /**
     * 通过用户姓名模糊查询用户信息 返回map的映射
     * @param userName
     * @return
     */
    List<User> findByUserName(String userName);

    /**
     * 通过用户姓名模糊查询用户信息 返回对象信息
     * @param userName
     * @return
     */
    List<User> findByUserName2(String userName);

    /**
     * 获取用户信息
     * @param user
     * @return
     */
    User findOne(User user);
    User findOne1(User user);
    User findOne2(User user);

    /**
     * 多个用户名查询多个用户信息
     * @param userNameList
     * @return
     */
    List<User> findUsersByNames(List<String> userNameList);

    /**
     * 通过用户id 查询带有订单的用户信息
     * @param id
     * @return
     */
    User findUserOrdersById(String id);
    User findUserOrdersById2(String id);
    /**
     * 按照用户id删除用户信息
     * @param id
     * @return
     */
    int delUserById(String id);

    /**
     * 通过用户主键修改用户信息
     * @param user
     * @return
     */
    int updateUserByPrimaryKeySelective(User user);

    /**
     * 通过id查询用户信息
     * @param id
     * @return
     */
    User findUserById(String id);

    /**
     * 通过id查询用户信息
     * @param id
     * @return
     */
    User findUserById2(String id);

    /**
     * 通过id查询用户信息
     * @param id
     * @return
     */
    User findUserByIdProvider(String id);
}
